package geral.manager;

import geral.util.FacesUtil;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.ejb.EJB;
import javax.enterprise.context.ConversationScoped;
import javax.inject.Named;

import br.com.sgc.entities.geral.Telefone;
import br.com.sgc.enuns.TipoTelefone;
import br.com.sgc.exception.ValidacaoException;
import br.com.sgc.session.GenericSession;
import br.com.sgc.session.TelefoneSession;


@Named
@ConversationScoped
public class TelefoneManager implements Serializable{
	
	
	private static final long serialVersionUID = 6465129932235132229L;
	
	private Telefone telefone = new Telefone();
	
	private List<Telefone> listTelefone = new ArrayList<Telefone>();
	
	private Boolean renderPanelCadastro = false;
	
	@EJB private GenericSession<TipoTelefone> tipoTelefoneSession;
	
	@EJB private TelefoneSession telefoneSession;
	
	public void addTelefone(){
		try {
			telefoneSession.validar(telefone);
			listTelefone.add(telefone);
			telefone = new Telefone();
		} catch (ValidacaoException e) {
			FacesUtil.mensWarn(e.getMessage());
		}
		
	}
	
	public void removeTelefone(){
		telefone.setPessoa(null);
		listTelefone.remove(telefone);
		telefone = new Telefone();
	}
	
	public void clear() {
		listTelefone = new ArrayList<Telefone>();
		telefone = new Telefone();
	}

	public Telefone getTelefone() {
		return telefone;
	}

	public void setTelefone(Telefone telefone) {
		this.telefone = telefone;
	}

	public List<Telefone> getListTelefone() {
		return listTelefone;
	}

	public void setListTelefone(List<Telefone> listTelefone) {
		this.listTelefone = listTelefone;
	}

	public TelefoneSession getTelefoneSession() {
		return telefoneSession;
	}

	public void setTelefoneSession(TelefoneSession telefoneSession) {
		this.telefoneSession = telefoneSession;
	}

	public Boolean getRenderPanelCadastro() {
		return renderPanelCadastro;
	}

	public void setRenderPanelCadastro(Boolean renderPanelCadastro) {
		this.renderPanelCadastro = renderPanelCadastro;
	}

	public GenericSession<TipoTelefone> getTipoTelefoneSession() {
		return tipoTelefoneSession;
	}

	public void setTipoTelefoneSession(
			GenericSession<TipoTelefone> tipoTelefoneSession) {
		this.tipoTelefoneSession = tipoTelefoneSession;
	}
}
